package com.example.designhbwxz.book.service.impl;

import com.example.designhbwxz.book.pojo.UserInfo;
import com.example.designhbwxz.book.service.AbstractRegisterLoginComponent;
import com.example.designhbwxz.book.service.RegisterLoginFuncInterface;

import javax.servlet.http.HttpServletRequest;

/**
 * 抽象子类角色 - RefinedAbstraction
 *
 * @author shenzw
 * @date 2023/10/28
 */
public class RegisterLoginComponent extends AbstractRegisterLoginComponent {
    /**
     * 通过有参构造方法，初始化 RegisterLoginFuncInterface 类型，且不为 null
     *
     * @param funcInterface RegisterLoginFuncInterface
     */
    public RegisterLoginComponent(RegisterLoginFuncInterface funcInterface) {
        super(funcInterface);
    }

    /**
     * 登陆
     *
     * @param userName 用户名
     * @param password 密码
     * @return String
     */
    @Override
    public String login(String userName, String password) {
        return funcInterface.login(userName, password);
    }

    /**
     * 注册
     *
     * @param userInfo 用户信息
     * @return String
     */
    @Override
    public String register(UserInfo userInfo) {
        return funcInterface.register(userInfo);
    }

    /**
     * 校验用户是否存在
     *
     * @param userName 用户名
     * @return boolean
     */
    @Override
    public boolean checkUserExists(String userName) {
        return funcInterface.checkUserExists(userName);
    }

    /**
     * 第三方登陆
     *
     * @param request HttpServletRequest
     * @return String
     */
    @Override
    public String login3rd(HttpServletRequest request) {
        return funcInterface.login3rd(request);
    }
}
